#ifndef MUSICLIST_H
#define MUSICLIST_H

#include <QVector>
#include <QUrl>
#include <QSet>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>

#include "song.h"

typedef typename QVector<Song>::iterator iterator;

class MusicList
{
public:
    MusicList();

    void addMusicByUrl(const QList<QUrl>& urls);    // 将QQMusic⻚⾯中读取到的⾳乐⽂件，检测是⾳乐⽂件后添加到musicList中

    void writeToDB();       //写入到数据库

    void readFromDB();      //读取数据库

    iterator begin();

    iterator end();

    iterator findMusicById(const QString& musicId);     //通过musicID放回迭代器，查找用

public:
    QVector<Song> musicList;   // Music类是⾃定义的C++类，描述歌曲相关信息
    QSet<QString> musicPaths;   //用于避免歌曲重复添加
};

#endif // MUSICLIST_H
